"""
首页视图层
"""
from core import src, admin
from db.db_handler import is_user_exist
from interface import user_interface, admin_interface


def register():
    """用户注册"""
    while True:
        username = input('请输入注册的用名：').strip()

        # 用户已存在
        if is_user_exist(username):
            print(f'{username}用户已存在，请重新输入！')
            continue

        password = input('请输入密码：').strip()
        # 调用注册接口
        user_interface.register_interface(username, password)
        print('注册成功！')
        return


def login():
    """用户登录"""
    username = input('请输入登录的用户名：').strip()
    password = input('请输入密码：').strip()
    # 调用登录接口
    user_dict = user_interface.login_interface(username, password)
    # 如果用户不存在或密码错误
    if not user_dict:
        return

    print(f'{username}登录成功！')
    # 进入用户功能页面
    src.run(user_dict)


def system_management():
    """系统管理"""
    username = input('请输入管理员账号：').strip()
    password = input('请输入密码：').strip()
    # 调用登录接口
    user_dict = admin_interface.admin_login_interface(username, password)
    # 如果不是管理员
    if not user_dict:
        return

    print(f"管理员{username}成功登录!")
    # 进入系统管理页面
    admin.run(user_dict)


# 首页功能字典
index_dic = {
    '1': register,
    '2': login,
    '3': system_management,
    'q': exit,
}


# 注册登录界面
def run():
    # 登录视图
    while True:
        print(" 欢迎使用 ATM+购物车 系统 ".center(40, '*'))
        print("1.注册用户".center(40))
        print("2.用户登录".center(40))
        print("3.系统管理".center(40))
        print(" 欢迎使用 ".center(40, '*'))

        order = input('请选择功能（输入q退出系统）:').strip()

        # 错误输入
        if not index_dic.get(order):
            print("功能编号输入错误，请重新输入！")
            continue
        # 功能调用
        index_dic[order]()
        input('按回车继续...')
